#pragma once
#include "Globals.h"
#include <vector>

struct Drawable
{
	int					m_eiTextureIndex;	//Refers to eTextures, used to access engine to grab texture during draw
	int					m_eiIdentifier;		//The Object's ID
	int					BlackCtr;			//For PhaseToBlack


	D3DCOLOR			m_Color;			//Color							
	D3DXMATRIX			m_matScale;			//X,Y,Z Scale of Object
	D3DXMATRIX			m_matTranslation;	//Temporarily stores Translation	
	D3DXMATRIX			m_matWorldTrans;	//For the world transform	
	D3DXVECTOR3			m_vecPosition;		//X and Y coordinates
	D3DXVECTOR3			m_vecScale;			//For holding the scales like coordinates


	//=====CONSTRUCTORS
	Drawable();
	Drawable(float, float, float, float, int,int);

	//=====ACCESSORS
	int			aTextureID()	{return m_eiTextureIndex;};
	int			GetTexID()		{return m_eiTextureIndex;};
	D3DCOLOR	GetColor()		{return m_Color;		 };
	D3DXMATRIX	GetWorldTrans()	{return m_matWorldTrans; };
	//=====MUTATORS
	void PhaseToYellow(int,int);	
	void PhaseToRed	(int);
	void PhaseToBlack(int);
	void SetToColor(int);
	//=====LOGIC
	virtual void Update();
	//=====DRAW
	virtual void Draw(){};
};

typedef vector<Drawable*> L_Object;